1. Technical Field:
The present invention relates generally to data transmission on a computer system and, more particularly, to a method for selecting a transmission speed for sending data packets over a serial bus having a plurality of nodes. More specifically, the present invention relates to a method for selecting the maximum data rate at which data can be transmitted between selected nodes on the high performance acyclic serial bus.
2. Description of the Related Ad:
The IEEE has proposed a new standard under IEEE 1394 for a high performance serial bus cable environment that includes a network of nodes connected by point-to-point links called physical connections. The physical connections consist of a port on each of the nodes and the cable between them. A node can have multiple ports, which allows a branching multi-hop interconnect. The limitations on this topology are set by the requirement for the fixed round-trip time needed for the arbitration protocol. The default timing set after a bus reset is adequate for 16 cable hops, each of 4.5 meters for a total of 72 meters. The maximum number of nodes supported on a single bus is 63.
Whenever a node is added to or removed from the 1394 serial bus, a bus reset occurs that forces all nodes to a known state. After a bus reset, the tree identify (ID) process translates the general network topology into a tree, where one node is designated a root and all of the physical connections are labeled as either a parent, a child, or as unconnected. Any unconnected ports are labeled as off and do not participate any further. The tree must be acyclic, meaning no loops allowed; otherwise, the tree ID process will not be completed.
The 1394 cable environment supports multiple data rates of 98.304, 196.608, 393.216 megabits per second. The lowest speed is known as the base rate, and all ports that support a higher data rate must also support the lower data rate. Nodes capable of data rates greater than the base rate exchange speed information with its peers through its attached ports during the speed signalling phase of normal bus arbitration. If a peer node is incapable of receiving high speed data, then data will not be propagated down that path. Data will only be propagated down paths that support the higher data rate.
During data packet transmission, the source node sends a speed code, format and transactions codes, addresses of the source and destination nodes, and data. The destination field in this packet is used by each node's link layer to determine if it is the recipient of the transmitted data. The maximum speed at which a data packet can be transmitted depends on the bus topology and the data transmission speed supported by the nodes on the bus. To determine the optimum speed at which a data packet may be sent, the maximum supported speeds of the transmitting and receiving nodes as well as the maximum speed of any nodes connected between these nodes must be determined. The optimum speed for data transmission is equal to the highest speed which is supported by all the nodes, which are required to participate in the transmission of the data packet.
Accordingly, a method is needed to determine the maximum data transfer speed between a source and destination node by traversing a direct path between the two nodes via the parent links. What is also needed is a method for obtaining the data transfer speed prior to each isochronous transfer rather than storing the predetermined speed for every node to node combination.